<Schema name="FdtFFHseCommunicationSchema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:fdt="x-schema:FDTDataTypesSchema.xml" xmlns:fftypes="x-schema:FdtFFDataTypesSchema.xml" xmlns:fms="x-schema:FdtFFFmsSchema.xml" xmlns:ffh1="x-schema:FdtFFH1CommunicationSchema.xml">

	<!--Definition of Attributes-->
	<AttributeType name="schemaVersion" dt:type="string" default="1.21"/>
	<!-- Period of time in [ms] for the whole sequence -->
	<AttributeType name="sequenceTime" dt:type="ui4"/>
	<!-- Delay time in [ms] between two communication calls -->
	<AttributeType name="delayTime" dt:type="ui4"/>
	<!-- NMA configuration use - see FF-588 6.5.1.1.1 -->
	<AttributeType name="configurationUseNMA" dt:type="boolean"/>
	<!-- Indicates the type of query for SM Find Tag Query service 
	See FF-588 section 6.5.2.1 and FF-589 5.3.1 -->
	<AttributeType name="queryType" dt:type="enumeration" dt:values="queryPrimaryPD
	 queryVFD queryFB queryElementId queryVFDRef queryDeviceIndex querySecondaryPD"/>
	 <!-- indicates duplicate detection state received with SM Find Tag Reply 
	 See FF-588 section 6.5.2.2 and FF-589 5.3.2 -->
	<AttributeType name="duplicateDetectionState" dt:type="ui1"/>
	<!-- State of HSE SMK as define with FF-589 -->
	<AttributeType name="stateSMK" dt:type="ui1"/>
	<!-- Redundant Device Type Capability - see FF-588 section 6.5.2.7.1 
		used with response to SM Identify service -->
	<AttributeType name="redundantCapability" dt:type="enumeration" dt:values="D1 D2 D3"/>
	<!-- Device Redundancy State - see FF-589 and FF-588 section 6.5.2.7.1 
	used with response to SM Identify service -->
	<AttributeType name="deviceRedundancyState" dt:type="ui1"/>
	<!-- HSE Repeat time for device annunciations see FF-589 -->
	<AttributeType name="repeatTimeHSE" dt:type="ui4"/>
	<!-- maximum value that the device index may have.  See the Redundancy specification FF-593 -->
	<AttributeType name="maxDeviceIndex" dt:type="ui2"/>
	<!-- Version number of SM annunciation message - see FF-589 -->
	<AttributeType name="versionAnnunciation" dt:type="ui4"/>
	<!-- version of the List of Version Numbers in SM Characteristics in the SMIB - see FF-589 -->
	<AttributeType name="versionHSEDevice" dt:type="ui4"/>
	<!-- identifies the HSE interface to be cleared. see FF-589 -->
	<AttributeType name="interfaceToClear" dt:type="ui1"/>
	<!-- Indicates that no error occured. Used by SmStandardResponse to encode a SM service 
	response with no error -->
	<AttributeType name="noError" dt:type="boolean" default="1"/>
	<!--Definition of elements -->
	<!-- Common Elements -->
	<!-- IP address from which a request was sent -->
	<ElementType name="SourceIP" content="eltOnly" model="closed">
          <element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
    </ElementType>
    <!-- Operational IP address of the device responding -->
	<ElementType name="OperationalIP" content="eltOnly" model="closed">
          <element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
    </ElementType>
	<!--  Session management as defined with FF-588 section 6.5.1.1.1
		is up to the COMM DTM or communication channel
		- hence no session management services are defined here.
		Parameters for session management like Inactivity close time
		can be adjusted via a GUI of the COMM DTM or communication
		channel.
	 -->
	<ElementType name="OpenSessionRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- PD Tag of HSE device resp. linking device -->
		<attribute type="fdt:tag" required="yes"/>
		<!-- NMA configuration use was missing -->
		<attribute type="configurationUseNMA" required="yes"/>
		<!-- IP address of HSE device to connect  to  -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<!-- Elements for system management services -->
	<!-- Designates the type of query for VFD Reference. Used by element SmFindTagQuery-->
	<ElementType name="SmQueryVFDRef" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fdt:tag" required="yes"/>
		<attribute type="fftypes:vfdRef" required="yes"/>
	</ElementType>
	<!-- Designates the type of query for a device index. Used by element SmFindTagQuery-->
	<ElementType name="SmQueryDeviceIndex" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fftypes:deviceIndex" required="yes"/>
	</ElementType>
	<!-- See FF-588 section 6.5.2.1 and FF-589 5.3.1 -->
	<ElementType name="SmFindTagQuery" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<attribute type="queryType" required="yes"/>
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
		<group order="one" minOccurs="1" maxOccurs="1">
			<element type="ffh1:SmQueryPhysicalDevice"/>
			<element type="ffh1:SmQueryVFD"/>
			<element type="ffh1:SmQueryFB"/>
			<element type="SmQueryVFDRef"/>
			<element type="SmQueryDeviceIndex"/>
		</group>
	</ElementType>
	<!-- See FF-588 section 6.5.2.2 and FF-589 5.3.2 -->
	<ElementType name="SmFindTagReply" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<attribute type="queryType" required="yes"/>
		<attribute type="duplicateDetectionState" required="yes"/>
		<!-- Queried object FDA address link ID -->
		<attribute type="fftypes:linkId" required="yes"/>
		<!-- Queried object H1 node address (if H1 device) -->
		<attribute type="fftypes:nodeId" required="no"/>
		<!-- PD Tag -->
		<attribute type="fdt:tag" required="yes"/>
		<!-- IP address from which the matching Find Tag Query was sent -->
		<element type="SourceIP" minOccurs="1" maxOccurs="1"/>
		<!-- Queried object IP address -->
		<element type="OperationalIP" minOccurs="1" maxOccurs="1"/>
		<group order="one" minOccurs="1" maxOccurs="1">
			<element type="ffh1:SmReplyPhysicalDevice"/>
			<element type="ffh1:SmReplyVFD"/>
			<element type="ffh1:SmReplyFB"/>
		</group>
	</ElementType>
	<!-- Encodes device information of HSE device - used with SM Identify service. See element SmIdentifyResponse	 -->
	<ElementType name="DeviceInformation" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="redundantCapability" required="yes"/>
		<attribute type="fftypes:deviceIndex" required="no"/>
		<attribute type="maxDeviceIndex" required="no"/>
	</ElementType>
	<!-- Encodes redundancy state/information of HSE device -  used with SM Identify service. See element SmIdentifyResponse	-->
	<ElementType name="RedundancyInformation" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="deviceRedundancyState" required="yes"/>
		<!-- LAN redundancy port -->
		<attribute type="fftypes:port" required="yes"/>
	</ElementType>
	<!-- see element VersionInformation -->
	<ElementType name="H1LiveListVersion" content="empty" model="closed">
		<attribute type="fftypes:linkId" required="yes"/>
		<attribute type="fftypes:versionNumber" required="yes"/>
	</ElementType>
	<!-- see element VersionInformation -->
	<ElementType name="H1NodeAddressVersion" content="empty" model="closed">
		<attribute type="fftypes:nodeId" required="yes"/>
		<attribute type="fftypes:versionNumber" required="yes"/>
	</ElementType>
	<!-- Encodes optional version information of device  -  used with SM Identify service. See element SmIdentifyResponse	 -->
	<ElementType name="VersionInformation" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="versionAnnunciation" required="yes"/>
		<attribute type="versionHSEDevice" required="yes"/>
		<attribute type="fftypes:listCount" required="yes"/>
		<group order="one" minOccurs="0" maxOccurs="*">
			<element type="H1LiveListVersion"/>
			<element type="H1NodeAddressVersion"/>
		</group>
	</ElementType>
	<!-- See FF-588 section 6.5.2.3 and FF-589 5.3.3 -->
	<ElementType name="SmIdentifyRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<!-- IP address to which the service request is to be sent. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address to which the service request is to be sent. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<ElementType name="SmIdentifyResponseEntry" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fftypes:deviceType" required="yes"/>
		<!-- acts as PD-Tag -->
		<attribute type="fdt:tag" required="yes"/>
		<!-- Device ID -->
		<attribute type="fftypes:devID" required="yes"/>
		<attribute type="stateSMK" required="yes"/>
		<attribute type="repeatTimeHSE" required="no"/>
		<attribute type="duplicateDetectionState" required="no"/>
		<!-- Operational IP address -->
		<attribute type="fftypes:ip" required="no"/>
		<!-- IP address of the device that responded. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address of the responder. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
		<element type="DeviceInformation" minOccurs="1" maxOccurs="1"/>
		<element type="RedundancyInformation" minOccurs="0" maxOccurs="1"/>
		<element type="VersionInformation" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<!-- See FF-588 section 6.5.2.7 and FF-589 5.3.3 -->
	<ElementType name="SmIdentifyResponse" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<element type="SmIdentifyResponseEntry" minOccurs="0" maxOccurs="*"/>
	</ElementType>
	<!-- Standard response for HSE SM services - contains possible error information as well. -->
	<ElementType name="SmStandardResponse" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<attribute type="fftypes:smServiceID" required="yes"/>
		<attribute type="noError" required="no"/>
		<!-- IP address of the device that responded. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address of the responder. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
		<element type="fms:CommonErrorType"/>
	</ElementType>
	<!-- See FF-588 section 6.5.2.4 and FF-589 5.3.4 -->
	<ElementType name="SmClearAddressRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<!-- acts as PD-Tag -->
		<attribute type="fdt:tag" required="yes"/>
		<attribute type="fftypes:devID" required="yes"/>
		<attribute type="interfaceToClear" required="no"/>
		<!-- IP address to which the service request is to be sent. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address to which the service request is to be sent. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<!-- See FF-588 section 6.5.2.6 and FF-589 5.3.5 -->
	<ElementType name="SmClearAssignmentInfoRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<!-- acts as PD-Tag -->
		<attribute type="fdt:tag" required="yes"/>
		<attribute type="fftypes:devID" required="yes"/>
		<!-- IP address to which the service request is to be sent. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address to which the service request is to be sent. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<!-- See FF-588 section 6.5.2.5 and FF-589 5.3.6 -->
	<ElementType name="SmSetAssignmentInfoRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<!-- acts as PD-Tag -->
		<attribute type="fdt:tag" required="yes"/>
		<attribute type="fftypes:devID" required="yes"/>
		<attribute type="fftypes:deviceIndex" required="no"/>
		<attribute type="maxDeviceIndex" required="no"/>
		<attribute type="repeatTimeHSE" required="no"/>
		<!-- Operational IP address -->
		<attribute type="fftypes:ip" required="no"/>
		<!-- Used to clear - Clear Duplicate Detection State -->
		<attribute type="duplicateDetectionState" required="no"/>
		<!-- H1 New Address -->
		<attribute type="fftypes:nodeId" required="no"/>
		<!-- IP address to which the service request is to be sent. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address to which the service request is to be sent. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
		<element type="RedundancyInformation" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<!-- See FF-588 section 6.5.2.5 and FF-589 5.3.6 -->
	<ElementType name="SmSetAssignmentInfoResponse" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<attribute type="repeatTimeHSE" required="no"/>
		<attribute type="maxDeviceIndex" required="no"/>
		<!-- IP address of the device that responded. -->
		<element type="fftypes:IP" minOccurs="1" maxOccurs="1"/>
		<!-- FDA address of the responder. -->
		<element type="fftypes:DataLinkAddress" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<!-- *********************************************************************** -->
	<!-- Context management see FF-588 section 6.5.3.2 and FF-870 sections 3.3.4 and 10.1.7 -->
	<ElementType name="ConnectRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- if not there indicates a simple FDT connection intended for SM services -->
		<element type="OpenSessionRequest" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<ElementType name="ConnectResponse" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<!-- this is the FDT connection reference -->
		<attribute type="fftypes:communicationReference" required="yes"/>
		<!-- if FDT connection could not be opened -->
		<element type="fms:CommonErrorType" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<ElementType name="DisconnectRequest" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fftypes:communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="DisconnectResponse" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fftypes:communicationReference" required="yes"/>
	</ElementType>
	<!-- *********************************************************************** -->
	<!-- General sequence support see FDT spec IFdtCommunication sequence processing -->
	<!-- Describes the sequence begin -->
	<ElementType name="SequenceBegin" content="empty" model="closed">
		<attribute type="sequenceTime" required="no"/>
		<attribute type="delayTime" required="no"/>
		<attribute type="fftypes:communicationReference" required="yes"/>
	</ElementType>
	<!-- Describes the sequence end -->
	<ElementType name="SequenceEnd" content="empty" model="closed">
		<attribute type="fftypes:communicationReference" required="yes"/>
	</ElementType>
	<!-- Describes the sequence start -->
	<ElementType name="SequenceStart" content="empty" model="closed">
		<attribute type="fftypes:communicationReference" required="yes"/>
	</ElementType>
	<!-- Describes the abort -->
	<ElementType name="Abort" content="empty" model="closed">
		<attribute type="fftypes:communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="FDT" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<group order="one" minOccurs="1" maxOccurs="1">
			<element type="SmFindTagQuery"/>
			<element type="SmFindTagReply"/>
			<element type="SmIdentifyRequest"/>
			<element type="SmIdentifyResponse"/>
			<element type="SmClearAddressRequest"/>
			<element type="SmClearAssignmentInfoRequest"/>
			<element type="SmSetAssignmentInfoRequest"/>
			<element type="SmSetAssignmentInfoResponse"/>
			<element type="SmStandardResponse"/>
			<element type="ConnectRequest"/>
			<element type="ConnectResponse"/>
			<element type="DisconnectRequest"/>
			<element type="DisconnectResponse"/>
			<element type="fms:FmsInitiateRequest"/>
			<element type="fms:FmsInitiateResponse"/>
			<element type="fms:FmsInitiateError"/>
			<element type="fms:FmsAbortRequest"/>
			<element type="fms:FmsAbortIndication"/>
			<element type="fms:FmsServiceError"/>
			<element type="fms:FmsStandardResponse"/>
			<element type="fms:FmsStatusRequest"/>
			<element type="fms:FmsStatusResponse"/>
			<element type="fms:FmsIdentifyRequest"/>
			<element type="fms:FmsIdentifyResponse"/>
			<element type="fms:FmsReadRequest"/>
			<element type="fms:FmsReadResponse"/>
			<element type="fms:FmsWriteRequest"/>
			<element type="fms:FmsGetOdRequest"/>
			<element type="fms:FmsGetOdResponse"/>
			<element type="fms:FmsDefineVariableListRequest"/>
			<element type="fms:FmsDefineVariableListResponse"/>
			<element type="fms:FmsDeleteVariableListRequest"/>
			<element type="fms:FmsGenericInitiateDownloadSequenceRequest"/>
			<element type="fms:FmsGenericDownloadSegmentRequest"/>
			<element type="fms:FmsGenericTerminateDownloadSequenceRequest"/>
			<element type="fms:FmsGenericTerminateDownloadSequenceResponse"/>
			<element type="SequenceBegin"/>
			<element type="SequenceEnd"/>
			<element type="SequenceStart"/>
			<element type="Abort"/>
			<element type="fdt:CommunicationError"/>
		</group>
	</ElementType>
</Schema>
